import jieba


def tokenize(text, mode='default', stop_words=None):
    """
    使用 jieba 对中文文本进行分词，支持不同模式和停用词过滤

    参数：
        text (str): 输入文本
        mode (str): 分词模式，可选 'default'（精确模式）、'all'（全模式）、'search'（搜索引擎模式）
        stop_words (set): 停用词集合，默认为 None

    返回：
        list: 分词后的结果列表
    """
    # 选择分词模式
    if mode == 'default':
        seg_list = jieba.cut(text)
    elif mode == 'all':
        seg_list = jieba.cut(text, cut_all=True)
    elif mode == 'search':
        seg_list = jieba.cut_for_search(text)
    else:
        raise ValueError("可选模式: 'default', 'all', 'search'")

    tokens = list(seg_list)

    # 过滤停用词
    if stop_words:
        tokens = [word for word in tokens if word not in stop_words]

    return tokens


# 使用示例
if __name__ == "__main__":
    # 示例文本
    text = "jieba是一个优秀的中文分词库，广泛用于自然语言处理。"

    # 示例1：默认精确模式
    print("默认模式:", tokenize(text))

    # 示例2：全模式
    print("全模式:", tokenize(text, mode='all'))

    # 示例3：带停用词过滤
    stopwords = {'是', '，', '一个', '。'}
    print("过滤停用词:", tokenize(text, stop_words=stopwords))
